﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Common.Model;
using Common.Services;
using System.Data.Objects.DataClasses;

namespace Common.UI.EM.Views.Interfaces
{
    public interface IListPresentationModel<S, E, C, EV>
        where S : IGenericEntityManagerService<E, C, EV>, new()
        where E : EntityObject
        where C : CriteriaEntity
        where EV : ViewEntity
    {

        IListView View
        {
            get;
            set;
        }

        void LoadList(C CriteriaEntity);

        void AddColumnDefinition(String columnName, String header);

        event ViewCalledEventHandler ViewCalled;
        event DeleteCalledEventHandler DeleteCalled;
        event ModifyCalledEventHandler ModifyCalled;
        event AddCalledEventHandler AddCalled;

    }
}